Computers are used to perform a wide assortment of tasks. Often computers are connected together as a group of computers known as a network workgroup. Referring to FIG. 1, a network workgroup is made up of a first client (10), a second client (12), a third client (14), and a shared printer (16) each having a network connection (18), for example, an Ethernet connection. Using a router (20), a connection is made to a remote network via a hub (22). Connected to the hub (22) are a remote shared printer (28), a first remote client (24), a second remote client (26), and a file server (30). The entire networked workgroup is able to connect to a wide area network (32), e.g., the Internet, via the router (20). Connecting to the network via remote access is increasing in popularity as users seek to use computers away from the central network workgroup. In such cases, a remote client computer is connected to the central network group via a telephone line and a communication device known as a modem.
Managing dispersed serial connections and modem pools for large numbers of users creates the need for significant administrative support. Because modem pools are a link to the outside world, modem pools require careful attention to security and authorization. Remote Authentication Dial-In User Service (RADIUS) handles these authentication and configuration issues by managing a single “database” of users. This allows for authentication (verifying user name and password) as well as configuration information detailing the type of service to deliver to the user (e.g., Point-to-Point Protocol (PPP), telnet, or rlogin). PPP is a widely used data link protocol for transmitting Transfer Control Protocol/Internet Protocol (TCP/IP) packets over dial-up telephone connections. Telnet is a protocol that enables an Internet user to log on to and enter commands on a remote computer linked to the Internet, as if the user were using a text-based terminal directly attached to that computer. Telnet is part of the TCP/IP suite of protocols. Rlogin is a protocol used to log on to a networked computer in which the local system automatically supplies the user's login name.
In a network workgroup, a Network Access Server (NAS) operates as a client of a server. The NAS provides a service to the dial-in user, such as PPP or Telnet. The client is responsible for passing user information to designated servers, and then acting on the response returned. Servers are responsible for receiving user connection requests, authenticating the user, and then returning all configuration information necessary for the client to deliver service to the user. The server can also act as a proxy client to other servers or other kinds of authentication servers.
In an effort to maintain network security, transactions between the client and server are authenticated through the use of a secret shared between the client and the server. This secret is never sent over the network. In addition, any user passwords sent between the client and server use a mechanism to maintain data integrity, e.g., MD5 Checksum, to eliminate the possibility that someone snooping on an unsecured network can determine a user password.
When the server is provided with the user name and original password input by the user, the server authenticates the user name and password through an authentication mechanism. The authentication mechanism is typically one of the following mechanisms: PPP, Extensible Authentication Protocol (EAP), Challenge Handshake Authentication Protocol (CHAP), or UNIX login. New attribute values can be added to the authentication mechanisms without disturbing existing implementations of the RADIUS server protocol.
When a client is configured to use RADIUS, any user of the client presents authentication information to the client. This might be with a customizable login prompt, where the user enters a username and password. Alternatively, the user might use a link framing protocol such as PPP or EAP, which has authentication packets carrying this information. Once the client obtains such information, the client may choose to authenticate using RADIUS.
PPP provides a standard method for transporting multi-protocol datagrams (packets of information, along with relevant delivery information such as the destination address that is sent through a packet-switching network) over point-to-point links. PPP also defines an extensible Link Control Protocol (LCP), which can be used to negotiate authentication methods, as well as an Encryption Control Protocol (ECP), used to negotiate data encryption over PPP links, and a Compression Control Protocol (CCP), used to negotiate compression methods.
EAP is a general protocol for PPP authentication that supports multiple authentication mechanisms. EAP does not select a specific authentication mechanism at a Link Control Phase. Rather, the specific authentication mechanism selection is postponed until an Authentication Phase. This postponement allows a PPP authenticator to request more information before determining the specific authentication mechanism. This also permits the use of a “back-end” server, such as a RADIUS server, which actually implements the various mechanisms while the PPP authenticator merely acts as a conduit for the authentication exchange. Through the use of EAP, support for a number of authentication schemes may be added, including smart card, public key, one time password, etc. To date, however, EAP methods have focused on authenticating a client to a server. The EAP protocol allows a PPP peer to take advantage of the integrity-protected ciphersuite (scrambled or otherwise encoded text) negotiation, mutual authentication, and key management capabilities of the Transfer Level Security (TLS) protocol.
A smart card is a credit card-sized, tamper-resistant security device that offers functions for secure information storage and information processing that relies on Very-Large-Scale Integration (VLSI) chip technology. VLSI is generally considered to encompass the range from 5,000 to 50,000 components densely packed in an integrated circuit. A smart card contains a secure microprocessor chip embedded in the card. The chip can implement a secure file system, compute cryptographic functions, and actively detect invalid access attempts. With proper application of file system access rights, a smart card can be safely used by multiple, independent applications.
The basic principle of Public Key Infrastructure (PKI) technology is a mathematical concept that can be used to relate certain pairs of large numbers (called keys) in a special way. If one of the keys is used to encrypt a message, the other key can be used to decrypt the message, and vice versa. Fundamental to this scheme is that only these two keys (called a key pair) are related in this way. So, in other words, if a message is encrypted with one key, the message can be decrypted only by the matching key in the pair. One key is called a private key and the other is called a public key. The private key is known only by the user; the public key is published as widely as the user desires.
The following is an example of how a private message is sent from a sender to a recipient. The recipient's public key is used to encrypt the message, which is then sent to the recipient. The recipient uses his/her private key to decrypt the message. The sender knows that only the recipient can read the message because the message can only be decrypted using the recipient's private key. One concern with this arrangement is that the sender does not know whether the recipient's true public key is being used to encrypt the message. To overcome this concern, a certificate is employed.
A certificate binds a public key to an identity (and possibly other information about that identity). The sender and recipient share a trusted third party (e.g. a mutual friend, an organizational administrator, or a government agency). If the recipient goes to that trusted third party and proves his/her identity and presents his/her public key, that third party bundles and “signs,” or verifies the authenticity of the public key along with the recipient's identity and any other appropriate information. This bundle of information is called a certificate, and the process of obtaining one is called certificate issuance.
A notable property of certificates is that public key tampering can be readily detected. The certificate is signed by the trusted third party (called a certificate authority, or CA). If the certificate is tampered with, the sender can tell because the CA is not recognized or the certification is improperly signed. Further, the sender can look at the certificate and verify that the certificate was, in fact, signed by the intended trusted third party. This mechanism assures that the recipient's public key really belongs to the recipient, at least to the level that trust exists in the CA.
A security management system, for instance, Entrust/Entelligence developed by Entrust Technologies of Plano, Tex., manages certificates, time stamping, encryption, digital signatures, and other security issues on behalf of users. Security management systems, such as Entrust/Entelligence, also have features such as automatic key and certificate management, and centrally managed policies and settings. Entrust/Entelligence integrates into a client computer environment. Also, instead of a separate log in procedure for each application stored on the computer, a user logs in only once to securely access all applications that are secured with a product such as Entrust/Entelligence.
Certificates used to verify a signed document may be stored on a server running a directory service. A directory service is a service running on a network that enables users to locate hosts and services, e.g., a certificate management service. An example of a directory service is Lightweight Directory Access Protocol (LDAP).
LDAP is the Internet standard for directory lookups, just as the Simple Mail Transfer Protocol (SMTP) is the Internet standard for delivering e-mail, and the Hypertext Transfer Protocol (HTTP) is the Internet standard for delivering documents. Technically, LDAP is defined as an “on the wire” bit protocol (similar to HTTP) that runs over Transmission Control Protocol/Internet Protocol (TCP/IP). LDAP creates a standard way for applications to request and manage directory information.
An LDAP-compliant directory leverages a single, master directory that owns all user, group, and access control information. The directory is hierarchical, not relational, and is optimized for reading, reliability, and scalability. This directory becomes a specialized, central repository that contains information about objects and provides user, group, and access control information to all applications on the network. For example, the directory can be used to provide a security management system with a user list, a user's public key information, or user identification for all users in a widely distributed enterprise.